package com.titaniume.java2;

import org.junit.Test;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Properties;
import java.util.stream.Collectors;

/**
 *@program: JavaSenior
 *@description:
 *
 * 1.集合框架概述
 *
 *  集合 数组都是对多个数据进行存储操作的结构  简称为java容器
 *  说明：此时的存储主要是指内存层面的存储，不涉及持久化存储(.txt,jpg,avi,数据库)
 *
 *  2.1 数据在存储多个数据的特点
 *   >一旦初始化之后 其长度确定了
 *   >数据一旦定义好 其元素类型也确定了，我们只能操作指定类型的数据 比如String [] arr;int [] arr1;
 * 2.2 数组存储多个数据方面的缺点
 *  >一旦初始化 其长度不能修改
 *  > 数组中提供的方法非常有限，对于 添加 删除 插入数据 非常不便 同时效率不高
 *  > 获取数组中实际元素的个数的需求，数组没有现成的属性或方法可用
 *  > 数组存储数据的特点：有序、可重复 。对于无序，不可重复的需求，不能满足
 *
 *
 *  二集合框架
 *   |-----Collection 接口 ： 单列集合 用于存储一个一个对象
 *     |-----List接口:存储 有序的、可重复数据 --------->"动态数组"
 *        |-----ArrayList、LinkedList、Vector
 *     |-----Set接口:存储 无序的、不可重复数据   -------> 高中讲的集合
 *        |-----HashSet、LinkedHashSet、TreeSet
 *   |-----Map接口： 双列集合，用于存储一对(key-value)一对数据  ---> 高中函数 y=f(x)
 *     |-----HashMap、LinkedHashMap、TreeMap、Hashtable、Properties
 *
 *
 *@author: renfei.huang
 *@create: 2021-10-11 10:22
 */
public class CollectinoTest {

    @Test
   public  void test1(){

        Collection collection = new ArrayList();

        //add(Object e)： 将元素e添加到collection集合中
        collection.add("AA");
        collection.add("BB");
        collection.add(123); //自动装箱
        collection.add(new Date());

        //size()： 获取添加元素的个数
        System.out.println(collection.size()); //4


        //addAll(Collection collection1)： 将collection1集合中的元素添加到当前集合中
        Collection collection1 = new ArrayList();
        collection1.add("abc");
        collection1.add(456);
        collection.addAll(collection1);
        System.out.println(collection.size()); //6


        //isEmpty()：判断当前集合是否为空
        System.out.println(collection.isEmpty());

        //clear() : 清空集合元素
        collection.clear();
        System.out.println(collection.isEmpty());

    }
}
